<?php
session_start();
define('INCLUDE_PATH', dirname(__FILE__) . '/');
require_once(INCLUDE_PATH . "globais.php");
require_once(INCLUDE_PATH . "cliente/acoesCliente.php");
require_once(INCLUDE_PATH . "autenticacao/AcaoAutenticacao.class.php");
require_once(INCLUDE_PATH . "AcaoGeral.php");
require_once(INCLUDE_PATH . "cliente/ControleCliente.php");
require_once(INCLUDE_PATH . "cliente/Cliente.php");
require_once(INCLUDE_PATH . "funcionario/agente/AcaoAgente.php");
require_once(INCLUDE_PATH . "funcionario/financeiro/AcaoFinanceiro.php");
require_once(INCLUDE_PATH . "funcionario/financeiro/AcaoFinanceiro.php");
require_once(INCLUDE_PATH . "funcionario/Funcionario.class.php");
require_once(INCLUDE_PATH . "reserva/acoesReserva.php");
require_once(INCLUDE_PATH . "admin/AcaoAdmin.class.php");
require_once(INCLUDE_PATH . "data.php");



//fazer o dynamic load de classes e invocacao via reflection do php
if(isset($_REQUEST["acao"])){
	if($_REQUEST["acao"] == "acaoGeral"){
		$acaoGeral = new AcaoGeral();
		$method = new ReflectionMethod('AcaoGeral', $_REQUEST["metodo"]);
		$method->invoke($acaoGeral, $_REQUEST);
		
	} else if ($_REQUEST["acao"] == "acaoCliente") {			
		$acoesCliente = new AcoesCliente();		
		$method = new ReflectionMethod('AcoesCliente', $_REQUEST["metodo"]);
		$method->invoke($acoesCliente, $_REQUEST);
	} else if ($_REQUEST["acao"] == "acaoAutenticacao") {
//		metodo=exibirLogin&acao=acaoAutenticacao
		$acaoAutenticacao = new AcaoAutenticacao();
		$method = new ReflectionMethod('AcaoAutenticacao', $_REQUEST["metodo"]);
		$method->invoke($acaoAutenticacao, $_REQUEST);
	} else if($_REQUEST["acao"] == "acaoAgente"){
		$acaoAgente = new AcaoAgente();
		$method = new ReflectionMethod('AcaoAgente', $_REQUEST["metodo"]);
		$method->invoke($acaoAgente, $_REQUEST);		
	} else if($_REQUEST["acao"] == "acaoFinanceiro"){
		$acaoFinanceiro = new AcaoFinanceiro();
		$method = new ReflectionMethod('AcaoFinanceiro', $_REQUEST["metodo"]);
		$method->invoke($acaoFinanceiro, $_REQUEST);
	} else if($_REQUEST["acao"] == "acaoReserva"){
		$acaoReserva = new AcoesReserva();
		$method = new ReflectionMethod('AcoesReserva', $_REQUEST["metodo"]);
		$method->invoke($acaoReserva, $_REQUEST);
	} else if($_REQUEST["acao"] == "acaoAdmin"){
		$acaoAdmin = new AcaoAdmin();
		$method = new ReflectionMethod('AcaoAdmin', $_REQUEST["metodo"]);
		$method->invoke($acaoAdmin, $_REQUEST);
	} else {
		throw new Exception("nenhuma acao encontrada. erro interno.");
	}
} else {
	throw new Exception("o _REQUEST[acao] nao foi postado. erro interno.");
}

//inclui o principal e o principal vai adicionar na div conteudo as informacoes de Globais::$CONTROLE_FLUXO_INCLUDES[0]
include_once("principal1.php");

?>
